Although documents generated by computer programs are more and more stored and transmitted in the form of computer-readable digital data, computer systems will still have, even in the long term, the ability to produce printouts of such documents on paper sheets.
Early personal computer printers could, for the most part, only print characters. Functions like the positioning and definition of margins and fonts were indicated by special codes sent by the personal computer. The codes for printers from different manufacturers were incompatible with each other, and each application program had a different set of printer drivers with those codes embedded. A printer driver is a special purpose program that typically processes printer-independent printing information to printer-dependent printing information usable by the corresponding printer to produce printouts. As software became more capable—word processors, presentation graphics, and page layout programs in particular—this technique became impractical. Different application programs had a different set of drivers. If a user bought a new printer, he had to get new drivers from each of his software vendors. The software vendors had to create and maintain their printer driver libraries.
Modern operating systems, like Windows (Windows is a trademark of Microsoft Corporation) simplified this problem, because they provided a printer-independent interface between application programs and the printers. In the Windows operating system, the application program draws on a page through the same interface provided by the operating system it uses to draw on a computer screen, the graphics device interface (GDI). The GDI then sends commands to the printer driver, which translates into the language the printer understands and, with the help of a communications port driver, sends the result to the printer.
In order to reduce the processing load on the computer and the transfer load when printing over a network, for the most part, printer drivers use what is called a page description language to communicate what is required to the printer. Two page description languages are widely used: PostScript (developed by Adobe) and PCL (developed by Hewlett-Packard) (PostScript and Adobe are trademarks of Adobe Systems Incorporated, and PCL and Hewlett-Packard are trademarks of Hewlett-Packard Corporation). Notwithstanding the fact that many printer manufacturers have standardised on PCL or PostScript, printer drivers specific to the respective printer are still needed. This is mainly because the printer drivers allow the control options and features in the printers, and the controls for them are not standardised. Most Windows printer drivers are based on a core printer driver, developed by Microsoft (Microsoft is a trademark of Microsoft Corporation), that handles things like rendering fonts, choosing the port the printer is connected to, and otherwise performing the tasks needed to send a page to the printer. The printer manufacturer builds tables that tell the core driver how to accomplish the necessary functions, and adds functions, for example related to colour matching, paper handling, and maintenance (Barry Press et al.: PC Upgrade and Repair Bible, 2000, third edition, pages 746–749).
Since modern application programs provide the user with many ways to print a document, the need has arisen to be able to visually check the desired printout of the document before the user proceeds to make the actual printout. Therefore, many application programs can provide the user with a print preview on the screen of the computer system. A print preview functionality can now even be implemented on the level of the Windows operating system by using the object-oriented Microsoft Foundation Class library, better known by the acronym MFC (Jeff Prosise: Programming Windows with MFC, second edition, 1999, pages 759–801). The Windows operating system and MFC allow a preview of the document to be printed even if the application program that has generated the document has no preview functionality. In order to make sure that the preview of the document to be printed looks exactly like the subsequent actual printout, it is known from EP 0 933 692 A2 assigned to Hewlett-Packard Company that the printer driver (rather than the application program) provides the print preview.
In the known print previews, the user can actuate buttons for going to the next or the previous page, switching between one-page and two-page views, zooming in and out, and so on. However, he can not modify what will be printed. If he is satisfied with what is presented, the user may click a print button to have the corresponding print job processed further and sent to the printer to produce an actual print-out. However, if the user wants to modify what will be printed, he has to actuate a cancel button to discontinue the printing process at this point and return to a previous step in the printing process or to the application program where the necessary modifications can be carried out.
For many applications of computer systems, there is a need to generate pages which are too large to fit on one sheet of paper, in particular, on a sheet of paper in a format usually used for correspondence, for example DIN A4 (210×297 mm) or US-Letter (8.5×11 inch), called “note paper” hereinafter. Such a page can be, for example, a construction drawing generated by a CAD application program. If such a drawing were scaled down to fit on one note paper sheet the necessary details of the drawing would not be visible any more.
A possible solution is the use of special printers for large paper sheets, for example, plotters for DIN A1 sheets (59.4×84 cm). Another solution, in situations where such a special printer is not available, is to split the page into several smaller parts and to print them on note paper sheets subsequently. The separately printed sheets can then be put together like tiles so as to form a large-scale printout of the page. Normally, such a tile-like printing functionality is implemented on the level of an application program, but it is also known from EP 0 933 692 A2 to implement it on the level of a printer driver.
A typical application where large pages are generated and have to be printed is architectural software, for instance the program ArchiCAD 6.0 (ArchiCAD is a trademark of Graphisoft Corporation). The ArchiCAD 6.0 program allows the user to choose a paper format and print scale. Depending on the user's choice, the program can split a page into several printout sheets. It displays a schematic representation of the number of required sheets as well as the effective print region on these sheets.
EP 0 933 692 A2, which has already been mentioned above, discloses a special printer feature called “BillBoard 2×2”. The choice of this feature by a user causes the printer driver to process a print job for a page to be printed on one sheet into a print job for a four-sheet printout. This printout can be viewed in a preview window exactly as it will be printed. If the user decides to change a printing feature after inspecting the preview window, for example, to change from a four-sheet printout to a one-sheet printout or vice versa, he has to actuate a cancel print button and to return to a previous window where he can make the corresponding settings.